/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ar.com.wholeconsulting.pacc.gui.utils.treetable.Ensayos;

import ar.com.wholeconsulting.pacc.gui.utils.treetable.PACCAbstractTreeTableModel;
import ar.com.wholeconsulting.pacc.gui.utils.treetable.TreeTableNode;
import ar.com.wholeconsulting.pacc.model.Aparato;
import ar.com.wholeconsulting.pacc.model.ensayos.Ensayo;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
import java.util.LinkedList;
import java.util.List;

/**
 *
 * @author pable
 */
public class EnsayosTreeTableModel extends PACCAbstractTreeTableModel {

    public EnsayosTreeTableModel() {
        super(new String[]{"Ensayo", "Fecha de Realizacion", "Cantidad de Ensayos"});
    }

    @Override
    public Object getValueAt(Object node, int column) {
        //System.out.println("getValueAt: " + node + ", " + column);
        TreeTableNode treenode = (TreeTableNode) node;
        switch (column) {
            case 0:
                return treenode.getName();
            case 1:
                return treenode.getDescription();
            case 2:
                return treenode.getChildren().size();
            default:
                return "Unknown";
        }
    }

    public void addEnsayosToRoot(Aparato aparato){
        List<Ensayo> ensayos = aparato.getEnsayos();
        Multimap<String,Ensayo> map = HashMultimap.create();
        for(Ensayo ensayo : ensayos){
            map.put(ensayo.toString(), ensayo);
        }
        for(String key : map.keySet()){
            addToRoot(new EnsayosTreeTableNode(aparato,key,map.get(key)));
        }
    }

    public void addEnsayo(Aparato aparato,Ensayo ensayo){
        boolean exists=false;
        for(TreeTableNode node : this.myroot.getChildren()){
            if(node.getName().equals(ensayo.toString())){
                node.getChildren().add(new EnsayosTreeTableNode(ensayo));
                exists=true;
                break;
            }
        }
        if(!exists){
            List<Ensayo> ensayos= new LinkedList<Ensayo>();
            ensayos.add(ensayo);
            addToRoot(new EnsayosTreeTableNode(aparato,ensayo.toString(),ensayos));
        }
    }

}
